1. Field of the Invention
The present general inventive concept disclosed herein relates to semiconductor memory devices, and more particularly, to a flash memory device and programming method thereof.
2. Description of the Related Art
Flash memory devices are generally programmed through program loops having data loading, programming, and verifying periods. Referring to FIG. 1, which illustrates a programming procedure of a flash memory device, data to be programmed (hereinafter referred to as ‘program data’) is loaded into the flash memory device (e.g., into a page buffer of the flash memory device) from an external device (e.g., memory controller) during the data loading period. The loaded data is programmed in selected memory cells during the programming period. During the verifying period, the flash memory device determines whether the selected memory cells have been programmed with the loaded data.
In the flash memory device, the memory cells are erased before the programming procedure. Typically, an erased state of a memory cell is defined as data ‘1’. Therefore, in such an instance, selected memory cells will be maintained in a same state as the erased state when they are to be programmed into data ‘1’. Determining that selected memory cells have been programmed into data ‘1’ is accomplished by reading data bits from the selected memory cells and determining whether the read data bits are all conditioned in a program pass state (e.g., data ‘1’). For example, if data ‘0’ is properly programmed into selected memory cells, as shown in FIG. 1, the loaded data ‘0’ will be changed into data ‘1’ during the verifying period. If data ‘1’ is properly programmed into selected memory cells, as shown in FIG. 1, the data ‘1’ will be maintained without change during the verifying period. If the read data bits are all detected as being properly programmed, and therefore reflected as data ‘1’ during the verifying period, the programming operation is terminated as being status pass (or program pass).
According to the aforementioned mode for programming, as shown in FIG. 2, although memory cells to be program-inhibited are programmed into data ‘0’, data bits read out from selected memory cells will be determined as being in program pass (i.e., data ‘1’). In other words, as shown in FIG. 2, if the selected memory cells to be program-inhibited are maintained on the erased state (CASE2) or if all selected memory cells are properly programmed (CASE1), the programming procedure will be terminated as being status pass. This means data is falsely stored in the memory cells. As a result, even though the programming operation is terminated as status pass, a read error can be caused therefrom.